home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / tt / fs_selct.tt / fs_sel.lst next >
Encoding:
File List  |  1996-09-18  |  12.4 KB  |  479 lines

  1. @fselect_init
  2. DO
  3.  @fselect
  4.  EXIT IF fs_file$=""
  5.  ALERT 0,"Rückgabe:|'"+fs_drive$+"'|'"+fs_pfad$+"'|'"+fs_file$+"'",1,"WEITER",d%
  6. LOOP
  7. END
  8. '
  9. PROCEDURE fselect_init
  10.  LOCAL i%
  11.  fs_coms%=11
  12.  DIM fs_commando$(fs_coms%+1),fs_com$(fs_coms%+1)
  13. fs_in_dat:
  14.  DATA LaufW:,Pfad:,Maske:,Ext's:,^-Cursor,v-Cursor,Open,Close,Direkt,Abbruch,RETURN=O.k
  15.  RESTORE fs_in_dat
  16.  fs_in$=SPACE$(fs_coms%)
  17.  FOR i%=1 TO fs_coms%
  18.   READ fs_commando$(i%)
  19.   fs_com$(i%)=LEFT$(fs_commando$(i%),1)
  20.   MID$(fs_in$,i%,1)=UPPER$(fs_com$(i%))
  21.  NEXT i%
  22.  fs_abbruch%=fs_coms%-1
  23.  fs_default%=fs_coms%
  24.  exts%=8
  25.  DIM ext$(exts%+1)
  26.  DATA "*   ","ASC","TXT","DOC","GFA","INL","S  ","PRG"
  27.  FOR i%=1 TO exts%
  28.   READ ext$(i%)
  29.  NEXT i%
  30.  DIM fs_tail$(fs_coms%+1)
  31.  fs_drive%=GEMDOS(&H19)
  32.  fs_drive$=CHR$(65+fs_drive%)
  33.  fs_drvs%=BIOS(10)
  34.  fs_tail$(1)=""
  35.  FOR i%=0 TO 15
  36.   IF BTST(fs_drvs%,i%) THEN
  37.    IF i%=fs_drive% THEN
  38.     fs_tail$(1)=fs_tail$(1)+inv$+" "+drive$+" "+norm$
  39.    ELSE
  40.     fs_tail$(1)=fs_tail$(1)+" "+CHR$(65+i%)+" "
  41.    ENDIF
  42.   ENDIF
  43.  NEXT i%
  44.  DATA ________.___,*   ASC TXT DOC GFA INL PIC PRG,"","","","","","",""
  45.  INLINE pfad_buf%,256
  46.  ~GEMDOS(&H47,L:pfad_buf%,fs_drive%+1)
  47.  fs_pfad$=CHAR{pfad_buf%}
  48.  fs_tail$(2)=pfad$
  49.  FOR i%=3 TO fs_coms%
  50.   READ fs_tail$(i%)
  51.  NEXT i%
  52.  fs_dats%=128
  53.  DIM fs_dat$(fs_dats%+1),fs_dat1$(fs_dats%+1),fs_dat2$(fs_dats%+1)
  54.  fs_dat_anzs%=25
  55.  fs_datein%=0
  56.  fs_xb%=45
  57.  fs_yb%=18
  58.  fs_x%=fs_xb%*8
  59.  fs_y%=fs_yb%*16
  60.  fs_b%=40*8
  61.  fs_h%=40*16
  62.  fs_top%=1
  63.  fs_t%=0
  64.  fs_fk%=1
  65.  IF INT{L~A-46}=8 THEN
  66.   fs_fk%=1
  67.  ELSE ! 16
  68.   fs_fk%=0
  69.  ENDIF
  70.  ABSOLUTE fs_asc|,V:fs_t%+3
  71.  ABSOLUTE fs_scan|,V:fs_t%+1
  72.  ABSOLUTE fs_st|,V:fs_t%
  73. RETURN ! fselect_init
  74. '
  75. PROCEDURE fselect
  76.  LOCAL i%,idx%,c_idx%,d_idx%,hhx%,c_back$,d_back$,mx%,my%,mk%,h$,dc!,dcw$
  77.  '
  78.  GET fs_x%,fs_y%,ADD(fs_x%,fs_b%),ADD(fs_y%,fs_h%),fs_back$
  79.  '
  80.  IF INT{L~A-46}=8 THEN
  81.   fs_fk%=1
  82.  ELSE
  83.   fs_fk%=0
  84.  ENDIF
  85.  '
  86.  @fs_normalisierung
  87.  @fs_dateien
  88.  @fs_neu
  89.  '
  90.  fs_file$=fs_vorschlag$
  91.  '
  92.  d_idx%=0
  93.  hhx%=0
  94.  '
  95.  DEFMOUSE 3
  96.  SHOWM
  97.  REPEAT
  98.   '
  99.   c_idx%=0
  100.   dcw$=""
  101.   '
  102.   REPEAT
  103.    fs_t%=GEMDOS(6,&HFF)
  104.    MOUSE mx%,my%,mk%
  105.   UNTIL fs_t%>0 OR mk%>0
  106.   '
  107.   IF fs_t%>0 THEN
  108.    SELECT fs_scan|
  109.    CASE &H48 ! UP
  110.     DEC idx%
  111.     IF idx%<1 THEN
  112.      c_idx%=INSTR(fs_in$,"^")
  113.      d_idx%=0
  114.      idx%=1
  115.     ELSE
  116.      IF idx%<>d_idx% THEN
  117.       IF d_idx%>0 THEN
  118.        PUT ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),d_back$
  119.       ENDIF
  120.       d_idx%=idx%+fs_top%-1
  121.       hhx%=idx%
  122.       GET ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),ADD(fs_x%,112),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(ADD(hhx%,1),4),d_back$
  123.       PUT ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),d_back$,10
  124.       IF fs_dat1$(d_idx%)<>"_" THEN
  125.        PRINT AT(fs_xb%+20,SHL(fs_yb%+10,fs_fk%));LEFT$(fs_dat$(d_idx%)+"            ",12);
  126.        fs_file$=fs_dat$(d_idx%)
  127.       ENDIF
  128.      ENDIF
  129.     ENDIF
  130.    CASE &H50 ! DOWN
  131.     INC idx%
  132.     IF idx%>fs_dat_anzs%+1 THEN
  133.      c_idx%=INSTR(fs_in$,"V")
  134.      d_idx%=0
  135.      idx%=1
  136.     ELSE
  137.      IF idx%<>d_idx% THEN
  138.       IF d_idx%>0 THEN
  139.        PUT ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),d_back$
  140.       ENDIF
  141.       d_idx%=idx%+fs_top%-1
  142.       hhx%=idx%
  143.       GET ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),ADD(fs_x%,112),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(ADD(hhx%,1),4),d_back$
  144.       PUT ADD(fs_x%,8),fs_y%+SHL(ADD(fs_coms%,1),4)+SHL(hhx%,4),d_back$,10
  145.       IF fs_dat1$(d_idx%)<>"_" THEN
  146.        PRINT AT(fs_xb%+20,SHL(fs_yb%+10,fs_fk%));LEFT$(fs_dat$(d_idx%)+"            ",12);
  147.        fs_file$=fs_dat$(d_idx%)
  148.       ENDIF
  149.      ENDIF
  150.     ENDIF
  151.    DEFAULT
  152.     c_idx%=INSTR(fs_in$,UPPER$(CHR$(fs_asc|)))
  153.     IF fs_asc|=&HD THEN
  154.      c_idx%=INSTR(fs_in$,"R")
  155.     ENDIF
  156.    ENDSELECT
  157.   ENDIF
  158.   '
  159.   IF mk%=1 THEN
  160.    PAUSE 10
  161.    i%=TIMER
  162.    mk%=0
  163.    REPEAT
  164.     mk%=MOUSEK
  165.    UNTIL mk%=1 OR TIMER=ADD(i%,10)
  166.    dc!=(mk%=1)
  167.    SUB mx%,fs_x%
  168.    SUB my%,fs_y%
  169.    IF my%>16 AND my%<SHL(ADD(fs_coms%,1),4) THEN
  170.     IF mx%>8 AND mx%<fs_b%*8 THEN
  171.      idx%=my% DIV 16
  172.      IF idx%<>c_idx% THEN
  173.       IF c_idx%>0 THEN
  174.        PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  175.       ENDIF
  176.       c_idx%=idx%
  177.       GET ADD(fs_x%,8),fs_y%+SHL(c_idx%,4),fs_x%+8+LEN(fs_commando$(c_idx%))*8,fs_y%+SHL(ADD(c_idx%,1),4),c_back$
  178.       PUT ADD(fs_x%,8),fs_y%+SHL(c_idx%,4),c_back$,10
  179.       PRINT AT(fs_xb%+20,SHL(fs_yb%+9,fs_fk%));fs_commando$(c_idx%);"      ";
  180.      ENDIF
  181.     ENDIF
  182.    ELSE IF my%>(fs_coms%+2)*16 AND my%<fs_h%-16
  183.     IF mx%>8 AND mx%<fs_b%*8 THEN
  184.      idx%=(my%-SHL(ADD(fs_coms%,1),4)) DIV 16
  185.      IF idx%<>d_idx% THEN
  186.       IF d_idx%>0 THEN
  187.        PUT fs_x%+8,fs_y%+(fs_coms%+1)*16+hhx%*16,d_back$
  188.       ENDIF
  189.       d_idx%=idx%+fs_top%-1
  190.       hhx%=idx%
  191.       GET fs_x%+8,fs_y%+(fs_coms%+1)*16+hhx%*16,fs_x%+112,fs_y%+(fs_coms%+1)*16+hhx%*16+16,d_back$
  192.       PUT fs_x%+8,fs_y%+(fs_coms%+1)*16+hhx%*16,d_back$,10
  193.       IF fs_dat1$(d_idx%)<>"_" THEN
  194.        PRINT AT(fs_xb%+20,SHL(fs_yb%+10,fs_fk%));LEFT$(fs_dat$(d_idx%)+"            ",12);
  195.        fs_file$=fs_dat$(d_idx%)
  196.       ENDIF
  197.      ENDIF
  198.      IF dc! THEN
  199.       IF fs_dat1$(d_idx%)="_" THEN
  200.        IF LEFT$(fs_dat$(d_idx%),1)="." THEN
  201.         c_idx%=INSTR(fs_in$,"C")
  202.        ELSE
  203.         c_idx%=INSTR(fs_in$,"O")
  204.        ENDIF
  205.       ELSE
  206.        c_idx%=INSTR(fs_in$,"R")
  207.       ENDIF
  208.      ENDIF
  209.     ENDIF
  210.    ENDIF
  211.   ELSE IF mk%=2
  212.    c_idx%=fs_abbruch%
  213.   ENDIF
  214.   '
  215.   SELECT c_idx%
  216.   CASE 1 ! Drive
  217.    PRINT AT(fs_xb%+2+LEN(fs_commando$(1)),SHL(fs_yb%+2,fs_fk%));cur_on$;
  218.    IF NOT dc! THEN
  219.     PAUSE 10
  220.     REPEAT
  221.      fs_t%=GEMDOS(6,&HFF)
  222.      MOUSE mx%,my%,mk%
  223.     UNTIL fs_t%>0 OR mk%>0
  224.     IF fs_t%>0 THEN
  225.      fs_drive$=UPPER$(CHR$(fs_asc|))
  226.      fs_drive%=ASC(fs_drive$)-65
  227.     ELSE
  228.      SUB mx%,ADD(fs_x%,56)
  229.      DIV mx%,24
  230.      fs_drive%=mx%
  231.      fs_drive$=CHR$(65+mx%)
  232.      PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  233.     ENDIF
  234.    ELSE
  235.     SUB mx%,56
  236.     DIV mx%,24
  237.     fs_drive%=mx%
  238.     fs_drive$=CHR$(65+mx%)
  239.     PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  240.    ENDIF
  241.    PRINT cur_off$;
  242.    IF INSTR(fs_tail$(1),fs_drive$) THEN
  243.     ~GEMDOS(&HE,fs_drive%)
  244.     @fs_normalisierung
  245.     @fs_dateien
  246.     @fs_neu
  247.    ENDIF
  248.   CASE 2 ! Pfad
  249.    PRINT AT(fs_xb%+2+LEN(fs_commando$(2)),SHL(fs_yb%+1+2,fs_fk%));
  250.    FORM INPUT 32 AS fs_pfad$
  251.    h$=fs_pfad$+CHR$(0)
  252.    ~GEMDOS(&H3B,L:VARPTR(h$))
  253.    @fs_normalisierung
  254.    @fs_dateien
  255.    @fs_neu
  256.   CASE 3 ! Maske
  257.    PRINT AT(fs_xb%+2+LEN(fs_commando$(3)),SHL(fs_yb%+1+3,fs_fk%));
  258.    IF dc! THEN
  259.     SUB mx%,24
  260.     DIV mx%,32
  261.     ALERT 1,"nr:"+STR$(mx%),1,"R",d%
  262.     PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  263.    ELSE
  264.     FORM INPUT 12 AS mask$
  265.    ENDIF
  266.    @fs_normalisierung
  267.    @fs_dateien
  268.    @fs_neu
  269.   CASE 4 ! E_XTs
  270.    PRINT AT(fs_xb%+2+LEN(fs_commando$(4)),SHL(fs_yb%+1+4,fs_fk%));cur_on$;
  271.    PAUSE 10
  272.    IF NOT dc! THEN
  273.     i%=0
  274.     PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));inv$;MID$(fs_tail$(4),i%*4+1,3);norm$;
  275.     REPEAT
  276.      REPEAT
  277.       fs_t%=GEMDOS(6,&HFF)
  278.       MOUSE mx%,my%,mk%
  279.      UNTIL fs_t%>0 OR mk%>0
  280.      IF fs_t%>0 THEN
  281.       IF fs_scan|=&H4B THEN ! <-
  282.        PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));MID$(fs_tail$(4),i%*4+1,3);
  283.        DEC i%
  284.        i%=MAX(0,i%)
  285.        PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));inv$;MID$(fs_tail$(4),i%*4+1,3);norm$;
  286.       ENDIF
  287.       IF fs_scan|=&H4D THEN ! ->
  288.        PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));MID$(fs_tail$(4),i%*4+1,3);
  289.        INC i%
  290.        i%=MIN(7,i%)
  291.        PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));inv$;MID$(fs_tail$(4),i%*4+1,3);norm$;
  292.       ENDIF
  293.      ELSE
  294.       SUB mx%,ADD(fs_x%,56)
  295.       DIV mx%,32
  296.       mask$="*."+MID$(fs_tail$(4),mx%*4+1,3)
  297.       PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  298.      ENDIF
  299.     UNTIL fs_asc|=&HD OR mk%>0
  300.     IF fs_asc|=&HD THEN
  301.      mask$="*."+MID$(fs_tail$(4),i%*4+1,3)
  302.     ENDIF
  303.     PRINT AT(fs_xb%+2+LEN(fs_commando$(4))+i%*4,SHL(fs_yb%+1+4,fs_fk%));MID$(fs_tail$(4),i%*4+1,3);cur_off$;
  304.    ELSE
  305.     SUB mx%,56
  306.     DIV mx%,32
  307.     mask$="*."+MID$(fs_tail$(4),mx%*4+1,3)
  308.     PRINT cur_off$;
  309.    ENDIF
  310.    @fs_normalisierung
  311.    @fs_dateien
  312.    @fs_neu
  313.   CASE 5 ! U_P ^
  314.    SUB fs_top%,fs_dat_anzs%
  315.    fs_top%=MAX(1,fs_top%)
  316.    @fs_neu
  317.   CASE 6 ! D_OWN v
  318.    ADD fs_top%,fs_dat_anzs%
  319.    fs_top%=MIN(fs_top%,fs_datein%-fs_dat_anzs%)
  320.    fs_top%=MAX(fs_top%,1)
  321.    @fs_neu
  322.   CASE 7 ! O_PEN
  323.    IF fs_dat1$(d_idx%)="_" THEN
  324.     h$=fs_dat$(d_idx%)+CHR$(0)
  325.     ~GEMDOS(&H3B,L:VARPTR(h$))
  326.     @fs_normalisierung
  327.     @fs_dateien
  328.     @fs_neu
  329.     idx%=0
  330.     d_idx%=0
  331.     hhx%=0
  332.    ENDIF
  333.   CASE 8 ! C_LOSE
  334.    h$=".."+CHR$(0)
  335.    ~GEMDOS(&H3B,L:VARPTR(h$))
  336.    @fs_normalisierung
  337.    @fs_dateien
  338.    @fs_neu
  339.    idx%=0
  340.    d_idx%=0
  341.    hhx%=0
  342.   CASE 9 ! D_IREKT
  343.    PRINT AT(fs_xb%+2+LEN(fs_commando$(9)),SHL(fs_yb%+10,fs_fk%));": ";
  344.    FORM INPUT 12 AS fs_file$
  345.    PUT fs_x%+8,fs_y%+c_idx%*16,c_back$
  346.    PRINT AT(fs_xb%+2+LEN(fs_commando$(9)),SHL(fs_yb%+10,fs_fk%));SPACE$(14);
  347.    PRINT AT(fs_xb%+20,SHL(fs_yb%+10,fs_fk%));LEFT$(fs_file$+"            ",12);
  348.   CASE 10 ! A_BBRUCH
  349.    fs_file$=""
  350.   CASE 11 ! R_ETURN
  351.   ENDSELECT
  352.   '
  353.  UNTIL c_idx%=fs_abbruch% OR c_idx%=fs_default%
  354.  HIDEM
  355.  DEFMOUSE 0
  356.  IF fs_dat1$(d_idx%)="_" THEN
  357.   fs_file$=""
  358.  ELSE
  359.   fs_file$=UPPER$(TRIM$(fs_file$))
  360.  ENDIF
  361.  PUT fs_x%,fs_y%,fs_back$
  362.  IF mk%>0 THEN
  363.   PAUSE 10
  364.  ENDIF
  365. RETURN ! fselect
  366. '
  367. PROCEDURE fs_normalisierung
  368.  ' Laufwerk
  369.  fs_drive%=GEMDOS(&H19)
  370.  fs_drive$=CHR$(65+fs_drive%)
  371.  fs_drvs%=BIOS(10)
  372.  fs_tail$(1)=""
  373.  FOR i%=0 TO 15
  374.   IF BTST(fs_drvs%,i%) THEN
  375.    IF i%=fs_drive% THEN
  376.     fs_tail$(1)=fs_tail$(1)+inv$+" "+fs_drive$+" "+norm$
  377.    ELSE
  378.     fs_tail$(1)=fs_tail$(1)+" "+CHR$(65+i%)+" "
  379.    ENDIF
  380.   ENDIF
  381.  NEXT i%
  382.  ' Pfad
  383.  ~GEMDOS(&H47,L:pfad_buf%,fs_drive%+1)
  384.  fs_pfad$=CHAR{pfad_buf%}
  385.  fs_tail$(2)=fs_pfad$
  386.  '
  387.  fs_top%=1
  388.  IF mask$="" THEN
  389.   mask$="*.*"
  390.  ENDIF
  391.  mask$=TRIM$(UPPER$(mask$))
  392.  fs_tail$(3)=mask$
  393.  '
  394.  fs_vorschlag$=TRIM$(UPPER$(fs_vorschlag$))
  395.  fs_file$=TRIM$(UPPER$(fs_file$))
  396. RETURN ! fs_normalisierung
  397. PROCEDURE fs_neu
  398.  LOCAL i%
  399.  DEFFILL 1,2,1
  400.  PBOX fs_x%,fs_y%,fs_x%+fs_b%,fs_y%+fs_h%
  401.  BOX fs_x%,fs_y%,fs_x%+fs_b%,fs_y%+fs_h%
  402.  BOX fs_x%+2,fs_y%+2,fs_x%+fs_b%-2,fs_y%+fs_h%-2
  403.  LINE fs_x%+2,fs_y%+8+(fs_coms%+1)*16,fs_x%+fs_b%-2,fs_y%+8+(fs_coms%+1)*16
  404.  LINE fs_x%+2,fs_y%+10+(fs_coms%+1)*16,fs_x%+fs_b%-2,fs_y%+10+(fs_coms%+1)*16
  405.  LINE fs_x%+2,fs_y%+(fs_coms%-1)*16,fs_x%+fs_b%-2,fs_y%+(fs_coms%-1)*16
  406.  FOR i%=1 TO fs_coms%
  407.   PRINT AT(fs_xb%+2,SHL(fs_yb%+1+i%,fs_fk%));fs_commando$(i%);fs_tail$(i%);AT(fs_xb%+2,SHL(fs_yb%+1+i%,fs_fk%));inv$;fs_com$(i%);norm$;
  408.  NEXT i%
  409.  PRINT AT(fs_xb%+20,SHL(fs_yb%+10,fs_fk%));fs_vorschlag$
  410.  FOR i%=fs_top% TO fs_top%+fs_dat_anzs%
  411.   IF i%<=fs_datein% THEN
  412.    PRINT AT(fs_xb%+2,SHL(fs_yb%+3+fs_coms%+i%-fs_top%,fs_fk%));fs_dat1$(i%);LEFT$(fs_dat$(i%)+"             ",13)+fs_dat2$(i%)
  413.   ENDIF
  414.  NEXT i%
  415. RETURN ! fs_neu
  416. PROCEDURE fs_dateien
  417.  LOCAL fehler%,buf%,h$,i%
  418.  FOR i%=1 TO fs_datein%
  419.   fs_dat$(i%)=""
  420.   fs_dat1$(i%)=""
  421.   fs_dat2$(i%)=""
  422.  NEXT i%
  423.  fs_datein%=0
  424.  buf%=FGETDTA()
  425.  ' Ordner-Suche
  426.  fehler%=FSFIRST(fs_pfad$+"\*.*",16)
  427.  IF fehler%>=0 THEN
  428.   IF BYTE{buf%+21}=16 THEN
  429.    INC fs_datein%
  430.    IF fs_datein%<fs_dats% THEN
  431.     fs_dat$(fs_datein%)=CHAR{buf%+30}
  432.     fs_dat1$(fs_datein%)="_"
  433.    ENDIF
  434.   ENDIF
  435.   fehler%=FSNEXT()
  436.   WHILE fehler%>=0
  437.    IF BYTE{buf%+21}=16 THEN
  438.     INC fs_datein%
  439.     IF fs_datein%<fs_dats% THEN
  440.      fs_dat$(fs_datein%)=CHAR{buf%+30}
  441.      fs_dat1$(fs_datein%)="_"
  442.     ENDIF
  443.    ENDIF
  444.    fehler%=FSNEXT()
  445.   WEND
  446.  ENDIF
  447.  ' Dateien
  448.  fehler%=FSFIRST(fs_pfad$+"\"+mask$,0)
  449.  IF fehler%>=0 THEN
  450.   INC fs_datein%
  451.   IF fs_datein%<fs_dats% THEN
  452.    fs_dat$(fs_datein%)=CHAR{buf%+30}
  453.    fs_dat1$(fs_datein%)=" "
  454.   ENDIF
  455.   fehler%=FSNEXT()
  456.   WHILE fehler%>=0
  457.    INC fs_datein%
  458.    IF fs_datein%<fs_dats% THEN
  459.     fs_dat$(fs_datein%)=CHAR{buf%+30}
  460.     fs_dat1$(fs_datein%)=" "
  461.    ENDIF
  462.    fehler%=FSNEXT()
  463.   WEND
  464.  ENDIF
  465.  '
  466.  FOR i%=1 TO fs_datein%
  467.   IF fs_dat1$(i%)<>"_" THEN
  468.    ~FSFIRST(fs_dat$(i%),-1)
  469.    fs_dat2$(i%)=STR$({buf%+26},7)+" "+@dta_2_date$(INT{buf%+24})+" "+@dta_2_zeit$(INT{buf%+22})
  470.   ENDIF
  471.  NEXT i%
  472. RETURN ! fs_dateien
  473. FUNCTION dta_2_date$(in&)
  474.  RETURN STR$(in& AND &X11111,2)+"."+STR$(SHR(in& AND &X111100000,5),2)+"."+STR$(1980+SHR(in& AND &X1111111000000000,9),4)
  475. ENDFUNC
  476. FUNCTION dta_2_zeit$(in&)
  477.  RETURN STR$(SHR(in& AND &X1111100000000000,11),2)+"."+STR$(SHR(in& AND &X11111100000,5),2)
  478. ENDFUNC
  479.